/**
 * 日期工具类
 */
DateUtils = {
};

/**
 * 格式化串
 */
DateUtils.YYYY_MM_DDHHMMSS = "yyyy-MM-dd hh:mm:ss";

DateUtils.YYYY_MM_DD = "yyyy-MM-dd";

DateUtils.YYYY_MM = "yyyy-MM";

/**
 * 格式化日期
 */
DateUtils.formatDate = function(date,format){
  var paddNum = function(num){
    num += "";
    return num.replace(/^(\d)$/,"0$1");
  }
  //指定格式字符
  var cfg = {
     yyyy : date.getFullYear() //年 : 4位
    ,yy : date.getFullYear().toString().substring(2)//年 : 2位
    ,M  : paddNum(date.getMonth() + 1)  //月 : 如果1位的时候不补0
    ,MM : paddNum(date.getMonth() + 1) //月 : 如果1位的时候补0
    ,d  : paddNum(date.getDate())   //日 : 如果1位的时候不补0
    ,dd : paddNum(date.getDate())//日 : 如果1位的时候补0
    ,hh : paddNum(date.getHours())  //时
    ,mm : paddNum(date.getMinutes()) //分
    ,ss : paddNum(date.getSeconds()) //秒
  }
  format || (format = "yyyy-MM-dd hh:mm:ss");
  return format.replace(/([a-z])(\1)*/ig,function(m){return cfg[m];});
} 

/* 
* 获得时间差,时间格式为 年-月-日 小时:分钟:秒 或者 年/月/日 小时：分钟：秒 
* 其中，年月日为全格式，例如 ： 2016-4-12 01:00:00 
* 返回精度为：秒,分,小时,天,年
* 使用方式：
* var testDate = new Date();
* var testStr = DateUtils.formatDate(testDate,DateUtils.YYYY_MM_DDHHMMSS);
* var result = GetDateDiff("2010-02-26 16:00:00", testStr, "day");
*/
DateUtils.getDateDiff = function(startTime, endTime, diffType) {
    startTime = startTime.replace(/\-/g, "/");
    endTime = endTime.replace(/\-/g, "/");
    //将计算间隔类性字符转换为小写
    diffType = diffType.toLowerCase();
    var sTime = new Date(startTime);//开始时间
    var eTime = new Date(endTime);//结束时间
    //作为除数的数字
    var divNum = 1;
    switch (diffType) {
        case "second":
            divNum = 1000;
            break;
        case "minute":
            divNum = 1000 * 60;
            break;
        case "hour":
            divNum = 1000 * 3600;
            break;
        case "day":
            divNum = 1000 * 3600 * 24;
            break;
        case "year":
            divNum = 1000 * 3600 * 24 * 365;
            break;
        default:
            break;
    }
    return parseInt((eTime.getTime() - sTime.getTime()) / parseInt(divNum));
}



//格式化时间 value 格式为可被 new Date识别串
DateUtils.formatDateToString = function(value, format){
	var dateStr = "";
	if(null != value){
		var date = new Date(value);
		dateStr = DateUtils.formatDate(date, format);
	}
	return dateStr;
}